﻿/*
 * TaskQueue.h
 *
 *  Created on: 2016年2月22日
 *      Author: Administrator
 */

#ifndef CORE_SOURCES_CORE_DEFAULT_TASKQUEUE_H_
#define CORE_SOURCES_CORE_DEFAULT_TASKQUEUE_H_
#include <queue>
#include <mutex>
namespace eyas{
namespace core{
class ITask;
class CORE_API TaskQueue {
public:
	TaskQueue(uint32_t capacity);
	virtual ~TaskQueue();
private:
	uint32_t capacity_;
	typedef std::queue<ITask*> TaskColl;
	TaskColl taskQueue_;
	std::mutex mutex_;
public:
	bool putTask(ITask* task);
	ITask* popTask();
};
}
}
#endif /* CORE_SOURCES_CORE_DEFAULT_TASKQUEUE_H_ */
